package com.ruoyi.coffee.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.coffee.domain.Products;
import com.ruoyi.coffee.dto.QueryProductDto;
import com.ruoyi.coffee.vo.ProductsVo;
import com.ruoyi.common.core.domain.AjaxResult;
/**
 * 咖啡产品Service接口
 * 
 * @author dxj
 * @date 2024-12-30
 */
public interface IProductsService extends IService<Products>
{
    /**
     * 查询咖啡产品
     * 
     * @param productId 咖啡产品主键
     * @return 咖啡产品
     */
    public Products selectProductsByProductId(Long productId);

    /**
     * 查询咖啡产品列表
     * 
     * @param products 咖啡产品
     * @return 咖啡产品集合
     */
    public List<Products> selectProductsList(Products products);

    /**
     * 新增咖啡产品
     * 
     * @param products 咖啡产品
     * @return 结果
     */
    public int insertProducts(Products products);

    /**
     * 修改咖啡产品
     * 
     * @param products 咖啡产品
     * @return 结果
     */
    public int updateProducts(Products products);

    /**
     * 批量删除咖啡产品
     * 
     * @param productIds 需要删除的咖啡产品主键集合
     * @return 结果
     */
    public int deleteProductsByProductIds(Long[] productIds);

    /**
     * 删除咖啡产品信息
     * 
     * @param productId 咖啡产品主键
     * @return 结果
     */
    public int deleteProductsByProductId(Long productId);

    /**
     * 5月榜单
     * @return
     */
    List<ProductsVo>billboards();

    /**
     * 大师推荐
     * @return
     */
    List<ProductsVo> recommend();

    /**
     * 咖啡分类搜索
     * @param queryProductDto
     * @return
     */
    AjaxResult searchProductByCategoryId(QueryProductDto queryProductDto);

    /**
     * 咖啡详情
     * @param productId
     * @return
     */
    ProductsVo getDetailByProductId(Long productId);
}
